const path = require('path');
const fs = require('fs');
const multer = require('multer');
const deleteDir = require('../utils/deleteFile');

// 过滤数据
const fileFilter = (req, file, cb) => {
  // 是否为 xlsx 文件
  const isXlsx =
    path.extname(file.originalname).slice(1).toLowerCase() === 'xlsx' ||
    path.extname(file.originalname).slice(1).toLowerCase() === 'xls';
  // 是否为 excel 文件
  if (isXlsx && (file.mimetype.includes('excel') || file.mimetype.includes('spreadsheetml'))) {
    cb(null, true);
  } else {
    cb('Please upload only excel file.', false);
  }
};

// 存储位置
const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    const dir = path.join(__dirname, '../../excel'); // 文件上传的目标目录路径
    if (fs.existsSync(dir)) {
      deleteDir(dir); // 删除目录中已存在文件
    } else {
      fs.mkdirSync(dir); // 创建目录
    }
    cb(null, dir);
  },
  filename: (req, file, cb) => {
    cb(null, `${Date.now()}-${file.originalname}`); // 创建文件
  }
});

module.exports = multer({ storage, fileFilter });
